COVID-19 ဗိုင်းရပ်၏အမည်မှာ Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) ဖြစ်ပြီးထိုဗိုင်းရပ်ကြောင့်ဖြစ်သောရောဂါကို coronavirus disease(COVID-19) ဟုခေါ်ပါသည်။ Corona ဟူသောစကားလုံးသည် Latin ဘာသာဖြင့်ရေးသားထားခြင်းဖြစ်ပြီး English လို Crown ဟုအဓိပ္ပါယ်ရပါသည်။ ဗိုင်းရပ်၏ပုံသဏ္ဍပေါ်အခြေခံ၍ရေးသားခြင်းဖြစ်ပါသည်။ ဗိုင်းရပ်၏အမည်ပေးခြင်းကို International Committee on Taxonomy of Viruses (ICTV) မှပြုလုပ်ပြီး ရောဂါ၏အမည်ပေးခြင်းကို WHO မှပြုလုပ်ခြင်းဖြစ်ပါသည်။

WHO'S NAMING-and-the-virus-that-causes-it)

WHO-Coronavirus

MOHS

အထက်ပါ website များမှတဆင့်သတင်းအချက်အလက်များရယူနိင်ပါသည်။


In [1]:
%store -r __importing_Lib
In [2]:
__importing_Lib
matplotlib inline backend and ggplot style are used.
Mplotlib version : 3.1.3
Numpy version	 : 1.18.1
Pandas version	 : 1.0.1
Seaborn version	 : 0.10.0
Folium version	 : 0.10.1
Other imported is: Waffle      
		 : datetime      
		 : base64      
		 : Json
In [3]:
from folium import plugins
from graphviz import Digraph
import matplotlib.gridspec as gridspec
import requests
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files/Graphviz2.38/bin/'
mpl.rcParams['xtick.minor.size'] = 0
mpl.rcParams['xtick.minor.width'] = 0
mpl.rcParams['ytick.minor.size'] = 0
mpl.rcParams['ytick.minor.width'] = 0
plt.rcParams['font.weight'] = 'bold'
plt.rcParams['axes.labelweight'] = 'bold'
plt.rcParams['axes.titleweight'] = 'bold'


In [4]:
covid_df = pd.read_excel('covid/COVID-19-2020-07-26.xlsx', parse_dates=['dateRep'])
covid_df.rename(columns={'countryterritoryCode': 'Country_Code'}, inplace=True)
print(covid_df.shape)
cc_dict = {
            'Anguilla': 'AIA', 'Bonaire, Saint Eustatius and Saba': 'BES',
            'Czechia': 'CZE', 'Falkland_Islands_(Malvinas)': 'FLK'
          }
covid_df.query('countriesAndTerritories!=["Cases_on_an_international_conveyance_Japan"]', inplace=True)
covid_df.rename(columns={'countriesAndTerritories': 'Country_Name'}, inplace=True)
for c_name, c_code in cc_dict.items():
    covid_df.loc[covid_df.Country_Name==c_name, 'Country_Code'] = c_code
print(covid_df.shape)
start_date = covid_df.dateRep.min().strftime('%d-%m-%Y')
last_date = covid_df.dateRep.max().strftime('%d-%m-%Y')
print(f'start_date: {start_date}', f'last_date : {last_date}', sep='\n')
total_death = covid_df.deaths.sum()
total_cases = covid_df.cases.sum()
overall_death_rate = total_death / total_cases * 100
print(f'total_death: {total_death:7,.0f}\ntotal_cases: {total_cases:7,}\noverall_death_rate: {overall_death_rate:.2f}%')
covid_df.head()
(32223, 12)
(32159, 12)
start_date: 31-12-2019
last_date : 26-07-2020
total_death: 644,825
total_cases: 16,017,409
overall_death_rate: 4.03%
Out[4]:
dateRep day month year cases deaths Country_Name geoId Country_Code popData2019 continentExp Cumulative_number_for_14_days_of_COVID-19_cases_per_100000
0 2020-07-26 26 7 2020 121 13 Afghanistan AF AFG 38041757.0 Asia 4.484546
1 2020-07-25 25 7 2020 108 35 Afghanistan AF AFG 38041757.0 Asia 4.389913
2 2020-07-24 24 7 2020 13 0 Afghanistan AF AFG 38041757.0 Asia 5.309955
3 2020-07-23 23 7 2020 188 21 Afghanistan AF AFG 38041757.0 Asia 5.946098
4 2020-07-22 22 7 2020 112 4 Afghanistan AF AFG 38041757.0 Asia 5.606997


In [5]:
region_df = pd.read_csv('life_expectancy/Metadata_Country.csv', usecols=[0, 1, 2])
region_df.columns = 'Country_Code', 'Region', 'IncomeGroup'
region_df.dropna(subset=['IncomeGroup'], inplace=True)
region_df.head()
Out[5]:
Country_Code Region IncomeGroup
0 ABW Latin America & Caribbean High income
1 AFG South Asia Low income
2 AGO Sub-Saharan Africa Lower middle income
3 ALB Europe & Central Asia Upper middle income
4 AND Europe & Central Asia High income


In [6]:
region_dict = {'Anguilla': ['Latin America & Caribbean', 'High income'],
               'Bonaire, Saint Eustatius and Saba': ['Latin America & Caribbean', 'High income'],
               'Falkland_Islands_(Malvinas)': ['Latin America & Caribbean', 'High income'],
               'Guernsey': ['Europe & Central Asia', 'High income'],
               'Holy_See': ['Europe & Central Asia', 'High income'],
               'Jersey': ['Europe & Central Asia', 'High income'],
               'Montserrat': ['Latin America & Caribbean', 'Upper middle income'],
               'Taiwan': ['East Asia & Pacific', 'High income']
               }
In [7]:
merge_df = covid_df.merge(region_df, on='Country_Code', how='left')
for cname, (reg, level) in region_dict.items():
    merge_df.loc[merge_df.Country_Name==cname, ['Region', 'IncomeGroup']] = reg, level
col_to_keep = ['dateRep', 'cases', 'deaths', 'Country_Name', 'Region', 'IncomeGroup']
merge_df = merge_df.loc[:, col_to_keep]
merge_df.head()
Out[7]:
dateRep cases deaths Country_Name Region IncomeGroup
0 2020-07-26 121 13 Afghanistan South Asia Low income
1 2020-07-25 108 35 Afghanistan South Asia Low income
2 2020-07-24 13 0 Afghanistan South Asia Low income
3 2020-07-23 188 21 Afghanistan South Asia Low income
4 2020-07-22 112 4 Afghanistan South Asia Low income


In [8]:
country_df = (merge_df.groupby(['Country_Name', 'IncomeGroup'])
                      .agg({'cases': 'sum', 'deaths': 'sum'})
                      .reset_index([0, 1]))
country_df.Country_Name.replace({'Democratic_Republic_of_the_Congo': 'Congo', 'United_States_of_America': 'USA'},
                                inplace=True)
country_df['c_proportion'] = country_df.cases / total_cases * 100
country_df['d_proportion'] = country_df.deaths / total_death * 100
country_df['death_rate'] = country_df.deaths / country_df.cases * 100
country_df.sort_values(['d_proportion', 'c_proportion', 'death_rate'], ascending=False).head()
Out[8]:
Country_Name IncomeGroup cases deaths c_proportion d_proportion death_rate
200 USA High income 4178027 146460 26.084287 22.713139 3.505482
27 Brazil Upper middle income 2394513 86449 14.949440 13.406583 3.610296
197 United_Kingdom High income 298681 45738 1.864727 7.093087 15.313328
125 Mexico Upper middle income 385036 43374 2.403859 6.726476 11.264921
98 Italy High income 245864 35102 1.534980 5.443648 14.276999


In [9]:
case_name_lst = []
case_quan_lst = []
fig, ((ax1, ax2), (ax3, ax4))= plt.subplots(2, 2, figsize=(15, 10))
income_grp = country_df.groupby('IncomeGroup')
for g_name, grp in income_grp:
    temp = grp.sort_values('cases').tail()
    case_name_lst.append(temp.Country_Name.iloc[-1])
    case_quan_lst.append(temp.cases.iloc[-1])
    ax = (ax1 if g_name=='High income' else ax2 if g_name=='Upper middle income' else ax3
              if g_name=='Lower middle income' else ax4)
    ax.set_title(g_name, y=1.035)
    ax.barh(temp.Country_Name, temp.cases, color='steelblue')
    ax.set_xlabel('Number of patients')
    ax.xaxis.set_label_coords(0.5, -0.123)
    
    for label in ax.get_xticklabels()[1::2]:
        label.set_visible(False)
    ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
    
    for i, v in enumerate(temp.cases):
        if g_name=='High income':
            x = v-730_000 if v > 2_200_000 else v+10_000
            
        elif g_name=='Upper middle income':
            x = v-430_000 if v > 1_000_000 else v-340_000
            
        elif g_name=='Lower middle income':
            x = v-240_000 if v > 1_000_000 else v-195_000 if v > 200_000 else v+10_000
        
        else:
            x = v-4_500 if v > 10_000 else v-3_800
            
        ax.text(x, i-0.1, f'{v:,}', color='white' if x < v else 'k')

plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.5)
fig.text(.5, 0.925, f'\nCOVID-19 Patients of all countries are analysed by IncomeGroup from {start_date} to {last_date}',
         fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_01', fontdict={'size':'x-large', 'ha':'center'});


In [10]:
cases_df = country_df.set_index('Country_Name').cases.sort_values().tail(10)
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.barh(cases_df.index, cases_df, color='steelblue')
for i, v in enumerate(cases_df):
    x = (v-400_000 if v > 1_000_000 else v-320_000 if v > 340_000 else v-284_000) 
    ax.text(x, i-0.1, f'{v:,}', color='white')

for label in ax.get_xticklabels()[1::2]:
    label.set_visible(False)
ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
ax.set_xlabel('Number of patients\nFig_02')
ax.set_title(f'\nCOVID_19 patients of top ten countries from {start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.07)
In [11]:
top_cases = (country_df.sort_values('cases', ascending=False, ignore_index=True)
                        [['Country_Name', 'cases', 'c_proportion']].head(3))
fcn, scn, tcn = top_cases.Country_Name
fcq, scq, tcq = top_cases.cases
fcp, scp, tcp = top_cases.c_proportion
top_cases
Out[11]:
Country_Name cases c_proportion
0 USA 4178027 26.084287
1 Brazil 2394513 14.949440
2 India 1385522 8.650101


In [12]:
death_name_lst = []
death_quan_lst = []
fig, ((ax1, ax2), (ax3, ax4))= plt.subplots(2, 2, figsize=(15, 10))
for g_name, grp in income_grp:
    temp = grp.sort_values('deaths').tail()
    death_name_lst.append(temp.Country_Name.iloc[-1])
    death_quan_lst.append(temp.deaths.iloc[-1])
    ax = (ax1 if g_name=='High income' else ax2
             if g_name=='Upper middle income' else ax3
             if g_name=='Lower middle income' else ax4)
    ax.set_title(g_name, y=1.035)
    ax.barh(temp.Country_Name, temp.deaths, color='steelblue')
    ax.set_xlabel('Number of patients')
    ax.xaxis.set_label_coords(0.5, -0.123)
    for i, v in enumerate(temp.deaths):
        if g_name=='High income':
            x = v-21_000 if v > 100_000 else v-18_500
            
        elif g_name=='Upper middle income':
            x = v-10_500 #if v > 10_000 else v-5_500
            
        elif g_name=='Lower middle income':
            x = v-4_000 if v > 10_000 else v-3_200 if v > 4_000 else v-2_800

        else:
            x = v-130 if v > 1_000 else v-90
        ax.text(x, i-0.1, f'{v:,.0f}', color='white')

    for label in ax.get_xticklabels()[1::2]:
        label.set_visible(False)
    ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.5)
fig.text(.5, 0.925, f'\nDeaths of COVID-19 Patients of all countries are analysed by IncomeGroup from \
{start_date} to {last_date}', fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_03', fontdict={'size':'x-large', 'ha':'center'});


In [13]:
deaths_df = country_df.set_index('Country_Name').deaths.sort_values().tail(10)
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.barh(deaths_df.index, deaths_df, color='steelblue')
for i, v in enumerate(deaths_df):
    x = v-12_000 if v > 100_000 else v-10_000 #if v > 10_000 else v-7_000
    ax.text(x, i-0.1, f'{v:,.0f}', color='white')

for label in ax.get_xticklabels()[1::2]:
    label.set_visible(False)
ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
ax.set_xlabel('Number of deaths\nFig_04')
ax.set_title(f'\nTen highest death toll countries from {start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.07)
In [14]:
top_deaths = (country_df.sort_values('deaths', ascending=False, ignore_index=True)
                         [['Country_Name', 'deaths', 'd_proportion']].head(3))
fdn, sdn, tdn = top_deaths.Country_Name
fdq, sdq, tdq = top_deaths.deaths
fdp, sdp, tdp = top_deaths.d_proportion
top_deaths
Out[14]:
Country_Name deaths d_proportion
0 USA 146460 22.713139
1 Brazil 86449 13.406583
2 United_Kingdom 45738 7.093087


In [15]:
drate_name_lst = []
drate_quan_lst = []
fig, ((ax1, ax2), (ax3, ax4))= plt.subplots(2, 2, figsize=(15, 10))
for g_name, grp in income_grp:
    temp = grp.sort_values('deaths', ascending=False).head(10).sort_values('death_rate').tail()
    drate_name_lst.append(temp.Country_Name.iloc[-1])
    drate_quan_lst.append(temp.death_rate.iloc[-1])
    ax = (ax1 if g_name=='High income' else ax2
             if g_name=='Upper middle income' else ax3
             if g_name=='Lower middle income' else ax4)
    ax.set_title(g_name, y=1.035)
    ax.barh(temp.Country_Name, temp.death_rate, color='steelblue')
    ax.set_xlabel('Death rate')
    ax.xaxis.set_label_coords(0.5, -0.123)
    for label in ax.get_xticklabels()[1::2]:
        label.set_visible(False)
    ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:.0f}%'))
    
    for i, v in enumerate(temp.death_rate):
        if g_name == 'High income':
            x = v-2.4
            
        elif g_name == 'Upper middle income':
            x = v-1.6 if v > 10 else v-1.4
        
        elif g_name == 'Low income':
            x = v-4 if v > 10 else v-3.2 if v > 3 else v-2.9
            
        else:
            x = v-0.6
            
        ax.text(x, i-0.1, f'{v:.2f}%', color='white')

plt.subplots_adjust(top=0.85, wspace=0.33, hspace=0.5)
fig.text(.5, 0.925, f'\nDeath rate of COVID-19 Patients of top five countries for each IncomeGroup from \
{start_date} to {last_date}', fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_05', fontdict={'size':'x-large', 'ha':'center'});


In [16]:
death_rate_df = country_df.sort_values('deaths').tail(10)
death_rate_ten = death_rate_df.set_index('Country_Name').death_rate.sort_values().tail(10)
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.barh(death_rate_ten.index, death_rate_ten, color='steelblue')
for i, v in enumerate(death_rate_ten):
    x = v-1.28 if v > 10 else v-1.08
    ax.text(x, i-0.1, f'{v:.2f}%', color='white')

for label in ax.get_xticklabels()[1::2]:
    label.set_visible(False)
ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:.0f}%'))
ax.set_xlabel('Death rate\nFig_06')
ax.set_title(f'\nTen highest death rate countries from {start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.07)
In [17]:
drate_df = death_rate_ten.tail(3)
trn, srn, frn = drate_df.index
tr, sr, fr = drate_df
print(f'USA: {death_rate_ten["USA"]}')
drate_df
USA: 3.505482372421241
Out[17]:
Country_Name
Italy             14.276999
United_Kingdom    15.313328
France            16.724275
Name: death_rate, dtype: float64


In [18]:
color_dict = {'cases': 'orange', 'deaths': 'red', 'death_rate': 'steelblue'}
cumsum_df = covid_df.groupby('dateRep')[['cases', 'deaths']].sum().cumsum()
cumsum_df.query('deaths > 0', inplace=True)
cumsum_df['death_rate'] = cumsum_df.deaths / cumsum_df.cases * 100
cumsum_dmin = cumsum_df.index.min()
cumsum_dmax = cumsum_df.index.max()
cumsum_tdelta = pd.Timedelta('3 days')
temp_first_date = cumsum_dmin.strftime('%d-%m-%Y')
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.plot(cumsum_df.index, cumsum_df.death_rate, color='steelblue')
ax.xaxis.set_major_locator(plt.MaxNLocator(11))
ax.set_ylabel('Death rate')
ax.set_xlabel('Date\nFig_07')
ax.set_title(f'\nCOVID-19 Death rate for the whole world from {temp_first_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.18)
ax.set_xlim([cumsum_dmin-cumsum_tdelta, cumsum_dmax+cumsum_tdelta])
fig.autofmt_xdate(rotation=45);
In [19]:
max_day = cumsum_df.death_rate.idxmax()
min_day = cumsum_df.death_rate.idxmin()
max_drate = cumsum_df.loc[max_day].death_rate
min_drate = cumsum_df.loc[min_day].death_rate
print(min_day.strftime('%d-%m-%Y'), min_drate)
print(max_day.strftime('%d-%m-%Y'), max_drate)
pd.concat([cumsum_df.head(1), cumsum_df.tail(1)])
20-01-2020 1.2552301255230125
25-04-2020 7.294173357468206
Out[19]:
cases deaths death_rate
dateRep
2020-01-11 59 1 1.694915
2020-07-26 16017409 644825 4.025776


In [20]:
period_df = covid_df.groupby('dateRep').agg({'cases': 'sum', 'deaths': 'sum'})
cases_max_day = period_df.cases.idxmax()
deaths_max_day = period_df.deaths.idxmax()
period_dmin = period_df.index.min()
period_dmax = period_df.index.max()
period_tdelta = pd.Timedelta('3 days')
print('Cases:', cases_max_day.strftime('%d-%m-%Y'), f'{period_df.loc[cases_max_day].cases:>8,}')
print('Deaths:', deaths_max_day.strftime('%d-%m-%Y'), f'{period_df.loc[deaths_max_day].deaths:>7,}')
period_df.info()
period_df.head()
Cases: 23-07-2020  282,209
Deaths: 16-04-2020  10,512
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 209 entries, 2019-12-31 to 2020-07-26
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   cases   209 non-null    int64
 1   deaths  209 non-null    int64
dtypes: int64(2)
memory usage: 12.9 KB
Out[20]:
cases deaths
dateRep
2019-12-31 27 0
2020-01-01 0 0
2020-01-02 0 0
2020-01-03 17 0
2020-01-04 0 0
In [21]:
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.plot(period_df.cases, color='steelblue')
ax.plot(period_df.deaths, color='red')
ax.semilogy()
ax.xaxis.set_major_locator(plt.MaxNLocator(11))
ax.set_yticklabels([0.01, 0.1, '1', '10', '100', '1,000', '10,000', '100,000'])
ax.set_xlabel('Date\nFig_08')
ax.set_title(f'\nInfected and death of people around the world by COVID_19 from {start_date} to {last_date}', y=1.035)
ax.set_ylabel('Number of people')
ax.xaxis.set_label_coords(0.5, -0.18)
ax.set_xlim([period_dmin-period_tdelta, period_dmax+period_tdelta])
fig.autofmt_xdate(rotation=45);


Animated Bubble plot for COVID-19 for weekly


  1. low income \$1,025 or less
  2. lower middle income \$1,026 and \$3,995
  3. Upper middle income \$3,996 and \$12,375
  4. High income \$12,376 or more

Classifying countries by income(World Bank)

COVID-19 ရောဂါကူးစက်ခံရသူ၊ သေဆုံးသူများ၏အရေအတွက်နှင့်ပတ်သက်သော သတင်းအချက်အလက်ကို European Centre for Disease Prevention and Control (ECDC) မှရယူခဲ့ပါသည်။

31-12-2019 မှ 26-07-2020 အထိတစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကူးစက်ခံရသူအရေအတွက်မှာ 16,017,409 ယောက်ဖြစ်ပြီး သေဆုံးသူအရေအတွက်မှာ 644,825 ယောက်ဖြစ်ပါသည်။ ပျမ်းမျှသေဆုံးနှုန်းမှာ 4.03% ဖြစ်ပါသည်။

ဝင်ငွေအုပ်စုအလိုက် COVID-19 ရောဂါကူးစက်ခံရမှု့ကိုလေ့လာကြည့်ရာ၌ မြင့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 4,178,027 ယောက်ဖြင့် USA မှလည်းကောင်း ၊ အလယ်အလတ်အမြင့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 2,394,513 ယောက်ဖြင့် Brazil မှလည်းကောင်း ၊ အလယ်အလတ်အနိမ့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 1,385,522 ယောက်ဖြင့် India မှလည်းကောင်း၊ အနိမ့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 36,157 ယောက်ဖြင့် Afghanistan တို့သည်ရောဂါကူးစက်ခံရမှု့အမြင့်ဆုံးတိုင်းပြည်များဖြစ်ပါသည်(Fig_01)။

တစ်ကမ္ဘာလုံးအနေဖြင့်လေ့လာကြည့်လျှင် ရောဂါကူးစက်ခံရသူအရေအတွက်အများဆုံးတိုင်းပြည်မှာ USA ဖြစ်ပြီး အရေအတွက်အားဖြင့် 4,178,027 (26.08%) ယောက်ဖြစ်ပါသည်။ ဒုတိယနှင့်တတိယရောဂါကူးစက်ခံရသူအရေအတွက်အများဆုံးတိုင်းပြည်များမှာ Brazil နှင့် India တို့ဖြစ်ပြီး အရေအတွက်အားဖြင့် 2,394,513 (14.95%) နှင့် 1,385,522 (8.65%) ယောက်တို့ဖြစ်ပါသည်(Fig_02)။

COVID-19 ရောဂါကြောင့်သေဆုံးမှု့အား ဝင်ငွေအုပ်စုအလိုက်လေ့လာကြည့်ရာ၌ မြင့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 146,460 ယောက်ဖြင့် USA မှလည်းကောင်း ၊ အလယ်အလတ်အမြင့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 86,449 ယောက်ဖြင့် Brazil မှလည်းကောင်း ၊ အလယ်အလတ်အနိမ့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 32,063 ယောက်ဖြင့် India မှလည်းကောင်း၊ အနိမ့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 1,259 ယောက်ဖြင့် Afghanistan တို့သည်သေဆုံးမှု့အမြင့်ဆုံးတိုင်းပြည်များဖြစ်ပါသည်(Fig_03)။

COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အား တစ်ကမ္ဘာလုံးအနေဖြင့်လေ့လာကြည့်တွင် သေဆုံးမှု့အများဆုံးတိုင်းပြည်မှာ USA ဖြစ်ပြီး အရေအတွက်အားဖြင့် 146,460 (22.71%) ယောက်ဖြစ်ပါသည်။ ဒုတိယနှင့်တတိယသေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည်များမှာ Brazil နှင့် United_Kingdom တို့ဖြစ်ပြီး အရေအတွက်အားဖြင့် 86,449 (13.41%) နှင့် 45,738 (7.09%) ယောက်တို့ဖြစ်ကြပါသည်(Fig_04)။

ဝင်ငွေအုပ်စုအလိုက် COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည် 10 ခုအားရွှေးထုတ်ပြီးနောက် နိင်ငံအလိုက်သေဆုံးနှုန်းအားလေ့လာကြည့်ရာ၌ မြင့်ဆုံးဝင်ငွေအုပ်စုတွင် 16.72% ဖြင့် France မှလည်းကောင်း ၊ အလယ်အလတ်အမြင့်ဝင်ငွေအုပ်စုတွင် 11.26% ဖြင့် Mexico မှလည်းကောင်း ၊ အလယ်အလတ်အနိမ့်ဝင်ငွေအုပ်စုတွင် 4.98% ဖြင့် Egypt မှလည်းကောင်း၊ အနိမ့်ဆုံးဝင်ငွေအုပ်စုတွင် 28.32% ဖြင့် Yemen တို့သည်သေဆုံးနှုန်းအမြင့်ဆုံးတိုင်းပြည်များဖြစ်ပါသည်(Fig_05)။

COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည် 10 ခုအားရွှေးထုတ်ပြီးနောက် ထိုတိုင်းပြည်တစ်ခုချင်းအလိုက်သေဆုံးနှုန်းအားတွက်ထုတ်ကြည့်ရာတွင် France သည်သေဆုံးနှုန်းအမြင့်ဆုံးတိုင်းပြည်ဖြစ်ပြီး 16.72% ဖြစ်ပါသည်။ ထို့နောက် 15.31% ဖြင့် United_Kingdom သည်လည်းကောင်း၊ 14.28% ဖြင့် Italy တို့သည်ဒုတိယနှင့်တတိယသေဆုံးနှုန်းအမြင့်ဆုံးတိုင်းပြည်များဖြစ်ကြောင်းလေ့လာတွေ့ရှိရသည်။ COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည်ဖြစ်သော USA ၏သေဆုံးနှုန်းမှာ 3.51% ဖြစ်ပါသည်(Fig_06)။

တစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကြောင့်အနည်းဆုံးပျမ်းမျှသေဆုံးနှုန်းမှာ 20-01-2020 တွင် 1.26% ဖြစ်ပြီးအမြင့်သေဆုံးနှုန်းမှာ 25-04-2020 တွင် 7.29% ကြောင်းတွေ့ရှိ ရပါသည်(Fig_07)။

တစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကူးဆက်ခံရသူနှင့်သေဆုံးသူအရေအတွက်အား နေ့အလိုက်လေ့လာကြည့်ရာတွင် 23-07-2020 သည်ရောဂါကူးဆက်ခံမှု့အများဆုံးနေ့ဖြစ်ပြီး အရေအတွက်အားဖြင့် 282,209 ယောက်ဖြစ်ပါသည်။ 16-04-2020 သည်သေဆုံးသူအရေအတွက်အများဆုံးနေ့ဖြစ်ခဲ့ပြီး 10,512 ယောက်သေဆုံးကြောင်းလေ့လာတွေ့ရှိရပါသည်(Fig_08)။


In [22]:
myan_df = pd.read_excel('covid\covid_19.xlsx', index_col='Case_no').drop('Is_Checked', axis=1)
myan_df.Adult.replace({0:'Minor', 1:'Majority'}, inplace=True)
myan_df.Hospital.replace({'South Okkalapa Women & Children Hospital':
                          'South Okkalapa Specialist Hospital'}, inplace=True)
for name in [' Township', ' City', ' Town']:
    myan_df.Address = myan_df.Address.str.replace(name, '')
m_start_date = myan_df.Confirm_date.min().strftime('%d-%m-%Y')
m_last_date = myan_df.Confirm_date.max().strftime('%d-%m-%Y')
number_of_patients = myan_df.Age.count()
number_of_periods = (covid_df.dateRep.max() - myan_df.Confirm_date.min()).days + 1
average_rate = number_of_patients / number_of_periods
age_min = myan_df.Age.min()
age_max = myan_df.Age.max()
print(f'start_date: {m_start_date}', f'last_date case found : {m_last_date}', sep='\n')
print(f'Total number of patients: {number_of_patients}')
print(f'Total number of periods: {number_of_periods}')
print(f'Average confirm cases per day: {average_rate:.2f}')
print(f'Minimum_age: {age_min}', f'Maximum_age : {age_max}', sep='\n')
myan_df.head() 
start_date: 23-03-2020
last_date case found : 26-07-2020
Total number of patients: 350
Total number of periods: 126
Average confirm cases per day: 2.78
Minimum_age: 1.5
Maximum_age : 87.0
Out[22]:
Age Gender Adult Is_Travel_History Country Hospital Admission_date Confirm_date Condition Address State Coordinate Lat Long Infection_type Case_relative Case_relative_no Is_Q Is_citizen Remark
Case_no
1 36.0 Male Majority Yes USA Tedim General Hospital 2020-03-21 2020-03-23 Recovery Tedim Chin 23.3689, 93.6508 23.3689 93.6508 Foreign No - No Yes National
2 26.0 Male Majority Yes England Wai Bar Gi Hospital 2020-03-23 2020-03-23 Recovery Hmawbi Yangon 16.9205, 96.1565 16.9205 96.1565 Foreign No - Yes Yes National
3 26.0 Male Majority Yes England Wai Bar Gi Hospital 2020-03-23 2020-03-25 Recovery Insein Yangon 16.9205, 96.1565 16.9205 96.1565 Foreign No - No Yes National
4 33.0 Male Majority Yes USA Kandaw Nadi Hospital 2020-03-25 2020-03-27 Recovery Chanmyathazi Mandalay 21.9454, 96.1123 21.9454 96.1123 Foreign No - No Yes Dual citizen
5 69.0 Male Majority Yes Australia, Singapore Wai Bar Gi Hospital 2020-03-25 2020-03-27 Death Mingala Taungnyunt Yangon 16.9205, 96.1565 16.9205 96.1565 Foreign No - No Yes National


In [23]:
cw_df = myan_df.set_index('Confirm_date')
cw_df = cw_df.resample('W').Age.count()
cw_df.name = 'Total'
pop_tdelta = pd.Timedelta('6 days')
pop_min_ldate = cw_df.idxmin()
pop_min_sdate = pop_min_ldate - pop_tdelta
wmin_pop = cw_df.loc[pop_min_ldate]
pop_max_ldate = cw_df.idxmax()
pop_max_sdate = pop_max_ldate - pop_tdelta
wmax_pop = cw_df.loc[pop_max_ldate]

print('Minimum', f'Start_date: {pop_min_sdate.strftime("%d-%m-%Y")}',
      f'End_date{":":>3} {pop_min_ldate.strftime("%d-%m-%Y")}',
      f'Patients{":":>3} {wmin_pop}', sep='\n')
print('Maximum', f'Start_date: {pop_max_sdate.strftime("%d-%m-%Y")}',
      f'End_date{":":>3} {pop_max_ldate.strftime("%d-%m-%Y")}',
      f'Patients{":":>3} {wmax_pop}', sep='\n')
cw_df.index = cw_df.index.strftime('%d-%m-%Y')
fig, ax= plt.subplots(1, 1, figsize=(14, 8))
ax.bar(cw_df.index, cw_df, color='steelblue')
for tup in cw_df.reset_index().itertuples():
    x = tup.Index-0.06 if tup.Total < 10 else tup.Index-0.1
    y = tup.Total
    ax.text(x, (y-3.5 if y > 4 else y-3), f'{tup.Total}', color='white')
ax.set_xlim(-0.6, len(cw_df)-0.4)
ax.set_ylabel('Number of Patients')
ax.set_xlabel('Fig_09')
ax.set_title(f'COVID-19 Weekly total confirm cases for Myanmar from {m_start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.18)
fig.autofmt_xdate(rotation = 45);
Minimum
Start_date: 11-05-2020
End_date  : 17-05-2020
Patients  : 4
Maximum
Start_date: 13-04-2020
End_date  : 19-04-2020
Patients  : 72


In [24]:
n = 5
count, bin_edges = np.histogram(myan_df.Age, bins=n)
age_idx = count.argsort()
portion = count/count.sum() * 100
print(count, bin_edges, portion, sep='\n')
gender_df = myan_df.Gender.value_counts().reset_index()
gender_df.columns = 'Gender', 'Total'
gender_df['Proportion'] = gender_df.Total / number_of_patients * 100
m_prop = gender_df.query('Gender=="Male"').iloc[0,-1]
f_prop = gender_df.query('Gender=="Female"').iloc[0,-1]
gender_df
[ 27 173  94  45  11]
[ 1.5 18.6 35.7 52.8 69.9 87. ]
[ 7.71428571 49.42857143 26.85714286 12.85714286  3.14285714]
Out[24]:
Gender Total Proportion
0 Male 216 61.714286
1 Female 134 38.285714


In [25]:
adult_df = myan_df.Adult.value_counts().reset_index()
adult_df.columns = 'Adult', 'Total'
adult_df['Proportion'] = adult_df.Total / number_of_patients * 100
maj_prop = adult_df.query("Adult=='Majority'").iloc[0,-1]
min_prop = adult_df.query("Adult=='Minor'").iloc[0,-1]
adult_df
Out[25]:
Adult Total Proportion
0 Majority 331 94.571429
1 Minor 19 5.428571


In [26]:
condition_df = myan_df.Condition.value_counts().reset_index()
condition_df.columns = 'Condition', 'Total'
condition_df.set_index('Condition', inplace=True)
condition_df.loc['Normal', 'Total'] = condition_df.loc['Normal', 'Total'] - 7
condition_df.loc['Recovery', 'Total'] = condition_df.loc['Recovery', 'Total'] + 7
condition_df['Proportion'] = condition_df.Total / number_of_patients * 100
condition_df.reset_index(inplace=True)
_, rq, rec_prop = condition_df.query("Condition=='Recovery'").iloc[0]
_, dq, dth_prop = condition_df.query("Condition=='Death'").iloc[0]
condition_df
Out[26]:
Condition Total Proportion
0 Recovery 290 82.857143
1 Normal 54 15.428571
2 Death 6 1.714286


In [27]:
infection_df = myan_df.Infection_type.value_counts().reset_index()
infection_df.columns = 'Infection_type', 'Total'
infection_df['Proportion'] = infection_df.Total / number_of_patients * 100
loc_prop = infection_df.query("Infection_type=='Local'").iloc[0,-1]
for_prop = infection_df.query("Infection_type=='Foreign'").iloc[0,-1]
infection_df
Out[27]:
Infection_type Total Proportion
0 Foreign 190 54.285714
1 Local 160 45.714286


In [28]:
q_df = myan_df.Is_Q.value_counts().reset_index()
q_df.columns = 'Is_Q', 'Total'
q_df['Proportion'] = q_df.Total / number_of_patients * 100
y_prop = q_df.query("Is_Q=='Yes'").iloc[0,-1]
n_prop = q_df.query("Is_Q=='No'").iloc[0,-1]
q_df
Out[28]:
Is_Q Total Proportion
0 Yes 290 82.857143
1 No 60 17.142857


In [29]:
fig, ((ax1, ax2, ax3), (ax4, ax5, ax6))= plt.subplots(2, 3, figsize=(15, 10))
myan_df.Age.plot.hist(bins=n, xticks=bin_edges, color='steelblue', ax=ax1)
ax1.set_ylabel('Number of patients')
ax1.set_xlim(myan_df.Age.min()-1, myan_df.Age.max()+1)
ax1.yaxis.set_label_coords(-0.13, 0.5)
ax1.set_title('Age of Patients', y=1.035)
xs = ['Gender', 'Adult', 'Condition', 'Infection_type', 'Is_Q']
palettes = {'Gender': ['orange', 'steelblue'], 'Adult': ['orange', 'steelblue'],
            'Condition': ['red', 'green', 'steelblue'], 'Infection_type': ['orange', 'steelblue'],
            'Is_Q': ['orange', 'steelblue']}
axs = [ax2, ax3, ax4, ax5, ax6]
orders = {'Gender': ['Female', 'Male'], 'Adult': ['Minor', 'Majority'],
          'Condition':['Death', 'Recovery', 'Normal'], 'Infection_type': ['Local', 'Foreign'], 
          'Is_Q': ['No', 'Yes']}
titles = {'Gender': 'Gender of Patients', 'Adult': 'Adult of Patients', 'Condition': 'Condition of Patients',
          'Infection_type': 'Infection type of Patients', 'Is_Q': 'Quarantine vs Not'}

for col, ax in zip(xs, axs):
    sns.countplot(col, data=myan_df, palette=palettes[col], ax=ax, order=orders[col])
    ax.set_title(titles[col], y=1.035)
    ax.set(xlabel=None, ylabel=None) if ax!=ax4 else ax.set(xlabel=None, ylabel='Number of patients')
    ax.yaxis.set_label_coords(-0.13, 0.5) if ax==ax4 else None
                          
plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.4)
fig.text(.5, 0.925, f'\nCOVID-19 Patients of Myanmar are analysed by each attribute from {m_start_date} to {last_date}',
         fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_10', fontdict={'size':'x-large', 'ha':'center'});


In [30]:
tsp_df = myan_df.query('State=="Yangon"').Address.value_counts().reset_index()
tsp_df.columns = 'Township', 'Total'
tsp_df.sort_values(['Total', 'Township'], ignore_index=True, inplace=True)
In [31]:
fig, ax= plt.subplots(1, 1, figsize=(14, 8))
ax.bar(tsp_df.Township, tsp_df.Total, color='steelblue', width=0.9) 
for tup in tsp_df.itertuples():
    x = tup.Index-0.1 if tup.Total < 10 else tup.Index-0.25
    y = tup.Total
    ax.text(x, (y-1.5 if y > 1 else y-0.9), f'{tup.Total}', color='white')
ax.set_xlim(-.8, len(tsp_df)-0.2)
ax.set_ylabel('Number of patients')
ax.set_xlabel('Fig_11')
ax.set_title(f'\nCOVID-19 patients in each area of Yangon from {m_start_date} to {last_date}', y=1.035)
fig.autofmt_xdate(rotation = 45);


In [32]:
rec_df = pd.read_excel('covid\covid_19.xlsx', sheet_name='rel_data', index_col='Case_no')
rec_df.query('Condition=="Recovery"', inplace=True)
rec_df = rec_df.reset_index().drop_duplicates('Case_no').set_index('Case_no')
merge_df = (myan_df[['Confirm_date', 'Age', 'Gender', 'Address', 'State']]
                    .merge(rec_df, left_index=True, right_index=True))
merge_df.drop(['Time', 'Condition'], axis=1, inplace=True)
merge_df['rec_per'] = (merge_df.Date - merge_df.Confirm_date).dt.days
merge_df['age_grp'] = pd.cut(merge_df.Age, range(0, 91, 10))
merge_df['rec_mask'] = merge_df.rec_per.apply(lambda x: 'Over_30' if x > 30 else 'Within_30')
avg_rec_periods = merge_df.rec_per.mean()
tot_recovery = len(merge_df)
min_rec = merge_df.rec_per.min()
max_rec = merge_df.rec_per.max()
print(f'Total_recovery_patients: {tot_recovery:}')
print(f'average_recovery_periods: {avg_rec_periods:.2f}')
print(f'minimum_recovery_periods: {min_rec}')
print(f'maximum_recovery_periods: {max_rec}')
merge_df.head()
Total_recovery_patients: 283
average_recovery_periods: 26.13
minimum_recovery_periods: 11
maximum_recovery_periods: 66
Out[32]:
Confirm_date Age Gender Address State Date rec_per age_grp rec_mask
Case_no
1 2020-03-23 36.0 Male Tedim Chin 2020-04-29 37 (30, 40] Over_30
2 2020-03-23 26.0 Male Hmawbi Yangon 2020-04-29 37 (20, 30] Over_30
3 2020-03-25 26.0 Male Insein Yangon 2020-04-09 15 (20, 30] Within_30
4 2020-03-27 33.0 Male Chanmyathazi Mandalay 2020-04-08 12 (30, 40] Within_30
6 2020-03-28 29.0 Male Insein Yangon 2020-04-28 31 (20, 30] Over_30


In [33]:
summary_gen_rec = merge_df.groupby('Gender')['rec_per'].describe()
summary_gen_rec
Out[33]:
count mean std min 25% 50% 75% max
Gender
Female 109.0 27.697248 13.220708 11.0 17.0 24.0 34.0 66.0
Male 174.0 25.149425 12.412961 12.0 15.0 20.0 33.0 63.0


In [34]:
fig, [(ax1, ax2), (ax3, ax4)]= plt.subplots(2, 2, figsize=(15, 10))
n2=7
for gen, ax in zip(["Male", "Female"], [(ax1, ax3), (ax2, ax4)]):
    temp_df = merge_df.loc[merge_df.Gender==gen]
    sns.boxplot(x= 'rec_per', y='Gender', data=temp_df, color='orange', ax=ax[0])
    _, rec_bin_edges = np.histogram(temp_df.rec_per, n2)
    temp_df.rec_per.plot.hist(bins=n2, color='steelblue', ax=ax[1], xticks=rec_bin_edges)
    ax[0].set_xlabel(None)
    ax[0].set_ylabel(None)
    ax[0].set_title(f'Box plot for {gen}', y=1.045)
    
    ax[1].set_xlabel('Recovery periods')
    ax[1].set_ylabel('Number of recovery patients' if ax[1]==ax3 else None)
    ax[1].set_title(f'Histogram for {gen}', y=1.045)

plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.3)
fig.text(.5, 0.925, f'\nCOVID-19 recovery patients of Myanmar from {m_start_date} to {last_date}',
         fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_12', fontdict={'size':'x-large', 'ha':'center'});


In [35]:
gen_age_summary = merge_df.groupby(['Gender', 'age_grp']).describe()
gen_age_summary
Out[35]:
Age rec_per
count mean std min 25% 50% 75% max count mean std min 25% 50% 75% max
Gender age_grp
Female (0, 10] 5.0 7.800000 2.489980 4.0 7.000 8.0 10.00 10.0 5.0 19.000000 6.041523 13.0 15.00 16.0 25.00 26.0
(10, 20] 12.0 17.166667 2.405801 12.0 16.500 18.0 18.25 20.0 12.0 29.000000 11.832160 13.0 22.50 25.5 35.25 49.0
(20, 30] 32.0 25.750000 3.100468 21.0 23.750 25.5 29.00 30.0 32.0 24.750000 11.135529 13.0 16.00 21.5 30.50 55.0
(30, 40] 22.0 34.136364 3.090623 31.0 32.000 33.0 35.75 40.0 22.0 29.272727 12.836636 13.0 17.25 28.0 36.75 53.0
(40, 50] 15.0 45.800000 2.704494 41.0 43.500 46.0 48.00 50.0 15.0 32.733333 17.135872 15.0 18.50 28.0 47.00 66.0
(50, 60] 12.0 56.333333 2.870962 51.0 54.750 57.0 58.00 60.0 12.0 25.833333 14.205206 11.0 13.75 25.5 30.50 62.0
(60, 70] 6.0 65.000000 1.897367 63.0 63.500 65.0 65.75 68.0 6.0 37.666667 15.945741 20.0 25.50 35.5 47.75 61.0
(70, 80] 2.0 76.500000 2.121320 75.0 75.750 76.5 77.25 78.0 2.0 19.500000 3.535534 17.0 18.25 19.5 20.75 22.0
(80, 90] 3.0 85.333333 1.527525 84.0 84.500 85.0 86.00 87.0 3.0 24.666667 13.428825 15.0 17.00 19.0 29.50 40.0
Male (0, 10] 4.0 6.625000 3.816084 1.5 4.875 7.5 9.25 10.0 4.0 30.500000 13.964240 17.0 23.75 27.5 34.25 50.0
(10, 20] 16.0 18.062500 1.913766 15.0 16.750 18.5 20.00 20.0 16.0 29.187500 14.307195 14.0 15.00 26.0 39.25 57.0
(20, 30] 58.0 25.000000 2.456642 21.0 23.000 24.0 26.00 30.0 58.0 21.896552 10.187177 12.0 15.00 18.0 26.75 52.0
(30, 40] 51.0 35.098039 2.886208 31.0 32.000 35.0 38.00 40.0 51.0 25.000000 11.608617 12.0 16.00 21.0 32.00 54.0
(40, 50] 26.0 44.884615 2.643133 41.0 43.000 44.0 46.75 50.0 26.0 25.230769 14.114695 14.0 15.00 19.0 34.75 63.0
(50, 60] 9.0 55.222222 3.113590 52.0 53.000 54.0 57.00 60.0 9.0 31.555556 16.164089 14.0 18.00 28.0 40.00 61.0
(60, 70] 8.0 63.750000 1.752549 62.0 62.750 63.0 65.00 67.0 8.0 34.000000 12.432676 17.0 22.75 36.5 41.50 53.0
(70, 80] 2.0 78.500000 2.121320 77.0 77.750 78.5 79.25 80.0 2.0 15.000000 1.414214 14.0 14.50 15.0 15.50 16.0


In [36]:
fig, ax= plt.subplots(1, 1, figsize=(14, 8))
sns.boxplot(x='age_grp', y='rec_per', hue='Gender', data=merge_df, palette=['steelblue', 'orange'], ax=ax)
ax.set_xlabel('Age groups\nFig_13')
ax.set_ylabel('Recovery periods')
ax.set_title(f'Recovery patients are analysed by Age groups and Gender', y=1.045)
ax.xaxis.set_label_coords(0.5, -0.07);


In [37]:
rec_gen_df = (merge_df.rec_mask.value_counts()/tot_recovery*100)
within_30 = rec_gen_df.loc['Within_30']
over_30 = rec_gen_df.loc['Over_30']
within_30, over_30
Out[37]:
(68.90459363957598, 31.09540636042403)


In [38]:
over30_df = merge_df.query('rec_per>30')
overtemp = over30_df.State.value_counts(ascending=True)
data = overtemp.to_dict()
fig = plt.figure(1,
    FigureClass=Waffle,
    figsize=(8.5,7.5),
    rows=6, 
    colors=('midnightblue', 'brown', 'gold', 'darkgreen', 'olive', 'purple', 'red', 'orange', 'steelblue'), #DCB732
    values=data,        
    title={'label': '\nRecovery patients over 30 days by State and by Gender', 'x':0.87,'y':1.15, 'fontsize':20},
    labels=[f'{k} ({v})' for k,v in data.items()],
    legend={'loc': 'lower center', 'bbox_to_anchor': (0.5, -0.4),'ncol': 3, 'fontsize':13},
    interval_ratio_y=0.45,
    icons='child',
    icon_size=35.0, 
    icon_legend=True,
    starting_location='NW',
)
fig.set_facecolor('#EEEEEE')
f = plt.gcf()
f.update({'tight_layout':False})
ax = f.add_axes([1.065,0.25,0.3,0.42])
sns.countplot(x='Gender', data=over30_df, ax=ax, palette=['orange', 'steelblue'], order=['Female', 'Male'])
ax.yaxis.tick_right()
ax.yaxis.set_label_position('right')
ax.yaxis.set_label_coords(1.2, 0.5)
ax.set(xlabel=None, ylabel='Number of recovery patients\n')
fig.text(0.75, 0.04, 'Fig_14\n', fontdict={'size':'xx-large', 'ha':'center'});


In [39]:
st_name, st_value = overtemp.reset_index().iloc[-1]
print(st_name,st_value)
gender_over30_df = over30_df.Gender.value_counts()
male,female = gender_over30_df
print(male,female)
gender_over30_df
Yangon 65
52 36
Out[39]:
Male      52
Female    36
Name: Gender, dtype: int64


In [40]:
state_df = myan_df.State.value_counts().reset_index()
state_df.columns = 'State', 'Total'
state_min = state_df.Total.min()
state_max = state_df.Total.max()
state_df['Proportion'] = state_df.Total / number_of_patients * 100
state_df['norm'] = np.log(state_df.Total)
st_tot, st_prop = state_df.Total.iloc[0], state_df.Proportion.iloc[0]
state_df
Out[40]:
State Total Proportion norm
0 Yangon 231 66.000000 5.442418
1 Rakhine 23 6.571429 3.135494
2 Chin 14 4.000000 2.639057
3 Mandalay 12 3.428571 2.484907
4 Sagaing 10 2.857143 2.302585
5 Bago (West) 9 2.571429 2.197225
6 Tanintharyi 9 2.571429 2.197225
7 Nay Pyi Taw 7 2.000000 1.945910
8 Mon 6 1.714286 1.791759
9 Ayeyarwady 5 1.428571 1.609438
10 Kayin 5 1.428571 1.609438
11 Shan (South) 5 1.428571 1.609438
12 Magway 3 0.857143 1.098612
13 Bago (East) 3 0.857143 1.098612
14 Shan (East) 3 0.857143 1.098612
15 Shan (North) 3 0.857143 1.098612
16 Kachin 2 0.571429 0.693147


In [41]:
myan_map = folium.Map(location=[19.9940,96.0864],
                      tiles='StamenToner',
                      zoom_start=5)
folium.Choropleth(
    geo_data='myanmar(original).json',
    data=state_df,
    columns=['State', 'norm'],
    bins=4,
    key_on='feature.properties.ST',
    nan_fill_color='white',
    line_color='black',
    fill_color='Paired', 
    fill_opacity=1, 
    line_opacity=1,
    legend_name ='COVID-19',
    name="COVID-19 patients of each state",
    overlay=True,
    highlight = True).add_to(myan_map)
folium.LayerControl().add_to(myan_map)
myan_map.save('Myanmar_covid-19_map.html')
myan_map
Out[41]:


In [42]:
myan2_map = folium.Map([19.9940,96.0864],zoom_start=5)
cluster = plugins.MarkerCluster().add_to(myan2_map)
host_lst = ['Naypyitaw General Hospital', 'Kengtung General Hospital', 'Magway Regional Hospital',
            'Yangon General Hospital', 'Sagaing General Hospital', 'Pathein General Hospital', 'Thandwe District Hospital',
            'Hpa-An General Hospital']
host_lst2 = ['Mawlamyine General Hospital', 'Myitkyina General Hospital', 'Maungdaw General Hospital',
             'Toungup Township Hospital', 'Buthidaung General Hospital']
host_lst3 = ['South Okkalapa Specialist Hospital', 'Defence Services Liver Hospital' ]

for t in myan_df.reset_index().itertuples():
    if t.Condition != 'Normal':
        continue
    html=f'''<div style="font-size:9pt; background-color:steelblue; color:white;">
                <div style="padding:3.5px 0; line-height:1.4;">
                    <b style="padding:0 7px;">Case_no
                        <span  style="padding: 0 1px 0 30.75px;">:</span>
                    </b>{t.Case_no:02d}<br>
                    <b style="padding:0 7px;">Age
                        <span  style="padding: 0 1px 0 54.35px;">:</span>
                    </b>{t.Age}<br>
                    <b style="padding:0 7px;">Gender
                        <span  style="padding: 0 1px 0 36px;">:</span>
                    </b>{t.Gender}<br>
                    <b style="padding:0 7px;">Condition
                        <span  style="padding: 0 1px 0 23.5px;">:</span>
                    </b>{t.Condition}<br>
                    <b style="padding:0 7px;">Address
                        <span  style="padding: 0 1px 0 33px;">:</span>
                    </b>{t.Address}<br>
                    <b style="padding:0 7px;">State
                        <span  style="padding: 0 1px 0 49px;">:</span>
                    </b>{t.State}<br>
                    <b style="padding:0 7px;">Hospital
                        <span  style="padding: 0 1px 0 32px;">:</span>
                    </b>{t.Hospital}<br>
                </div>
             </div>
          '''
    width = (304 if t.Hospital in host_lst3 else 282 if t.Hospital in host_lst2
                 else 271 if t.Hospital in host_lst else 251)
    ifram=folium.IFrame(html, width=width, height=135)
    popup=folium.Popup(ifram)
    icon=folium.Icon(color='green' if t.Condition == 'Recovery' else 'cadetblue' 
                                   if t.Condition != 'Death' else 'red')
    folium.Marker([t.Lat, t.Long], popup=popup, icon=icon).add_to(cluster)
myan2_map
Out[42]:


23-03-2020 မှ 26-07-2020 အထိမြန်မာနိင်ငံ၌ COVID-19 ရောဂါကူးစက်ခံရသောလူအရေအတွက်မှာ 350 ယောက်ဖြစ်ပြီး၊ 6 ဦးသေဆုံး၍ ရောဂါကင်းစင်သွားသူ 290 ဦးရှိပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါကူးစက်ခံရသူများတွင် အသက် 1 နှစ် 6 လသည်အသက်အငယ်ဆုံးဖြစ်ပြီး အသက်အကြီးဆုံးမှာ 87 နှစ်ဖြစ်ကြောင်းတွေ့ရှိရသည်။တစ်နေ့လျှင်ပျမ်းမျှ 2.78 ယောက်ရောဂါကူးစက်ခံနေရပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါအတည်ပြုလူနာတွေ့ရှိရမှု့အနည်းဆုံးမှာ 11-05-2020 ရက်မှ 17-05-2020 အကြားဖြစ်ပြီး 4 ယောက်ဖြစ်ပါသည်။ အတည်ပြုလူနာတွေ့ရှိရမှု့အများဆုံးမှာ 13-04-2020 ရက်မှ 19-04-2020 အကြားဖြစ်ပြီးအရေအတွက်အားဖြင့် 72 ဖြစ်ကြောင်းတွေ့ရှိရသည်။

ရောဂါကူးစက်ခံရသူအရေအတွက်အများဆုံးအသက်အပိုင်းအခြားမှာ 18.6 မှ 35.7 နှစ်အကြားဖြစ်ပြီး 173 (49.43%) ယောက်ဖြစ်ပါသည်။ ဒုတိယအများဆုံးမှာ 35.7 မှ 52.8 နှစ်အကြားဖြစ်ပြီး 94 (26.86%) ယောက်ဖြစ်ပါသည်။ ရောဂါကူးစက်ခံရမှု့၏ 61.71% မှာအမျိုးသားများဖြစ်ပြီး အမျိုးသမီးများ၏ရောဂါကူးစက်ခံရနှုန်းမှာ 38.29% ဖြစ်ပါသည်။

အသက် 18 နှစ်မှအထက်ရောဂါကူးစက်ခံရသောနှုန်းမှာ 94.57% ဖြစ်ပြီး အသက် 18 နှစ်အောက်ရောဂါကူးစက်ခံရသောနှုန်းမှာ 5.43% ဖြစ်ပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါကြောင့်သေဆုံးနှုန်းမှာ 1.71% ဖြစ်ပြီး ရောဂါပျောက်ကင်းမှု့နှုန်းမှာ 82.86% ကြောင်းတွေ့ရှိရသည်။ ရောဂါကူးစက်ခံရသူများ၏ 54.29% သည်ပြည်ပမှကူးစက်ခံရသူများဖြစ်ပြီး ပြည်တွင်းကူးစက်ခံရသောနှုန်းမှာ 45.71% ဖြစ်ကြောင်းလေ့လာတွေ့ရှိရပါသည်။ ရောဂါကူးစက်ခံရသူများ၏ 82.86% သည်အသွားအလာကန့်သတ်ထားသူများဖြစ်ပြီး 17.14% သည်အသွားအလာကန့်သတ်ထားခြင်းမရှိသူများဖြစ်ကြာင်းတွေ့ရှိရသည်။

မြန်မာနိင်ငံ၌ရောဂါကူးစက်ခံရသူအများဆုံးရှိသောဒေသမှာ ရန်ကုန်တိုင်းဒေသကြီးဖြစ်ပြီး 231 (66.00%) ယောက်ဖြစ်ပါသည်။ ရန်ကုန်တိုင်းဒေသကြီးတွင် အင်းစိန်မြို့နယ်သည် ရောဂါဖြစ်ပွါးမှု့အများဆုံးဖြစ်ပြီး အရေအတွက်အားဖြင့် 48 ယောက်ဖြစ်ပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါမဖြစ်ပွါးသောနေရာအဖြစ် ကယားပြည်နယ်သာကျန်ရှိတော့ကြောင်းကိုတွေ့ရှိရပါသည်။

မြန်မာနိင်ငံ၌ COVID-19 ရောဂါခံစားရသောလူနာများ ရောဂါကင်းစင်ဖို့ရန်ပျမ်းမျှကြာချိန်သည် 26.13 ရက်ဖြစ်ပါသည်။ ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်မှာ 11 ရက်ဖြစ်ပြီး အမြင့်ဆုံးကြာချိန်မှာ 66 ရက်ဖြစ်ကြောင်းတွေ့ရှိရပါသည်။ COVID-19 ရောဂါခံစားရသော အမျိုးသမီးများ၏ ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်သည် 11 ရက်ဖြစ်ပြီး 66 ရက်သည်အမြင့်ဆုံးကြာချိန်ဖြစ်ကြောင်းတွေ့ရှိပါသည်။ အမျိုးသားများ၏ COVID-19 ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်မှာ 12 ရက်ဖြစ်ပြီး အမြင့်ဆုံးကြာချိန်မှာ 63 ရက်ဖြစ်ပါသည်။ အသက်အုပ်စု (0, 10] တွင်အမျိုးသမီးများသည် အမျိုးသားများထက် ရောဂါလျင်မြန်စွာပျောက်ကင်းကြောင်းတွေ့ရှိရပြီး (70, 80] အုပ်စုတွင် အမျိုးသားများသည် အမျိုးသမီးများထက် ရောဂါပျောက်ကင်းမှု့မြန်ဆန်ကြောင်းတွေ့ရှိရသည်။ (40, 50] အသက်အုပ်စု၏ COVID-19 ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်သည် 14 ရက်ဖြစ်ပြီး အမြင့်ဆုံးကြာချိန်မှာ 66 ရက်ကြောင်းတွေ့ရှိရသည်။ (40, 50] အသက်အုပ်စုသည်ရောဂါကင်းစင်ရန် ကြာချိန်အတိုင်းအတာအကျယ်ပြန့်ဆုံး အုပ်စုဖြစ်ကြောင်း တွေ့ရှိရသည်။

COVID-19 ရောဂါပျောက်ကင်းသူစုစုပေါင်း၏ 68.90% သည်ရက်သုံးဆယ်အတွင်ရောဂါပျောက်ကင်းပြီး 31.10% သည်ရက်သုံးဆယ်ကျော်မှ ရောဂါပျောက်ကင်းကြောင်း တွေ့ရှိရပါသည်။ ရက်သုံးဆယ်ကျော်မှ COVID-19 ရောဂါပျောက်ကင်းသူစုစုပေါင်းမှာ 88 ယောက်ဖြစ်ပြီး အမျိုးသား 52 ယောက်၊ အမျိုးသမီး 36 ယောက်ဖြစ်ကြောင်းတွေ့ရှိရသည်။ ရက်သုံးဆယ်ကျော်မှ COVID-19 ရောဂါပျောက်ကင်းသူအများစုသည် ရန်ကုန်တိုင်းဒေသကြီးမှဖြစ်ပြီး အရေအတွက်အားဖြင့် 65 ယောက်ဖြစ်ပါသည်။




မှတ်ချက်

1. MOHS မှထုတ်ပြန်ချက်တွင် မည်သူ့ထံမှတဆင့်ရောဂါကူးစက်ခံရသည်ကို လူနာအမှတ်စဥ်ဖြင့်သော်လည်းကောင်း၊ လူနာအမှတ်စဥ်မပါ၍သော်လည်းကောင်းဖော်ပြလေ့ရှိပါသည်။ ထို့ကြောင့် တဆင့်ရောဂါကူးစက်ခံရမှု့ကိုဖော်ပြသောပုံသည် ရရှိသောသတင်းအချက်အလက်အပေါ်အခြေခံ၍ရေးဆွဲထားသောကြောင့် ပြည့်စုံသည်ဟုမဆိုနိင်ပါ။

2. MOHS မှထုတ်ပြန်ချက်တွင် ရောဂါကင်းစင်သွားသူ 290 ဦးရှိသည်ဟုဖော်ပြသော်လည်း လူနာအမှတ်စဥ်ဖြင့်ဖော်ပြသည့်အရေအတွက်မှာ 283 ယောက်သာရှိပါသည်။ ထိုလူနာအမှတ်စဥ်များကိုဇယားတွင်ဖော်ပြထားပါသည်။

Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no Case_no
1 2 3 4 6 7 8 9 11 12 14 15 18
19 20 21 22 23 24 25 26 27 28 29 30 31
32 33 34 35 36 38 40 41 42 43 44 45 46
47 48 49 50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69 70 71 72
73 74 75 77 78 79 81 82 83 84 85 87 88
89 90 91 92 93 95 96 97 98 99 100 101 102
103 104 105 106 107 108 109 112 113 114 115 116 117
118 119 120 121 122 123 124 125 126 127 128 129 130
131 132 133 134 135 136 137 138 139 140 141 142 143
144 145 146 147 148 149 150 151 152 153 154 155 156
157 158 159 160 161 162 163 164 165 166 167 168 169
170 171 172 173 174 175 176 177 178 179 180 181 182
183 184 185 186 187 188 189 190 191 192 193 194 195
196 197 198 199 200 201 202 204 205 207 209 210 212
213 215 216 217 218 220 221 222 223 224 225 226 227
228 229 230 231 232 233 234 235 236 237 242 243 244
245 246 247 248 249 250 252 253 255 258 259 262 263
264 265 266 267 268 270 271 272 273 274 275 276 277
278 280 281 282 283 284 285 286 287 289 290 291 292
293 294 295 296 297 298 299 301 302 303 304 305 306
307 312 313 314 317 318 325 328 329 330


3. ECDC မှ COVID-19 နှင့်ပတ်သက်သောသတင်းအချက်အလက်အား မြန်မာစံတော်ချိန်ညနေ 06:00 ဝန်ကျင်၌ရယူခဲ့ပါသည်။

4. အထိတစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကူးစက်ခံရသူအရေအတွက်မှာ ယောက်ဖြစ်ပြီး သေဆုံးသူအရေအတွက်မှာ ယောက်ဖြစ်ပါသည်။


Author: MIN KYAW ZAW
E-mail: minkyawzraw@gmail.com
LinkedIn: www.linkedin.com/in/minkyawzaw